<meta name="viewport" content="width=device-width, initial-scale=1">

<link rel="apple-touch-icon-precomposed" sizes="144x144" href="../../assets/img/favicon-144.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="../../assets/img/favicon-144.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="../../assets/img/favicon-72.png">
<link rel="apple-touch-icon-precomposed" href="../../assets/img/favicon-32.png">
<link rel="shortcut icon" href="../../assets/img/favicon-32.png">

<link rel="stylesheet" href="../../assets/css/vk.css"/>
<link rel="stylesheet" href="../../assets/css/prism.css"/>


<vk-title>VkBufferUsageFlagBits | NVK</vk-title>

<vk-centered>

  <vk-navigation>
  <vk-search-title>Search</vk-search-title>
  <vk-search>
    <input type="text" id="search" autocomplete="off" />
    <vk-search-results>
      <ol id="search-list">
        <li id="no-search-results">No Results</li>
      </ol>
    </vk-search-results>
  </vk-search>
  <vk-section-title style="margin-top: 1em;">Categories</vk-section-title>
  <vk-categories></vk-categories>
</vk-navigation>


  <vk-struct>

    <vk-name>VkBufferUsageFlagBits</vk-name>

    <vk-description>Bitmask specifying allowed usage of a buffer</vk-description>

    <vk-section-title>Stub</vk-section-title>
    <vk-stub>
      <pre><code class="language-js">VkBufferUsageFlagBits = {
  VK_BUFFER_USAGE_TRANSFER_SRC_BIT: 0x1,
  VK_BUFFER_USAGE_TRANSFER_DST_BIT: 0x2,
  VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT: 0x4,
  VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT: 0x8,
  VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT: 0x10,
  VK_BUFFER_USAGE_STORAGE_BUFFER_BIT: 0x20,
  VK_BUFFER_USAGE_INDEX_BUFFER_BIT: 0x40,
  VK_BUFFER_USAGE_VERTEX_BUFFER_BIT: 0x80,
  VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT: 0x100,
  VK_BUFFER_USAGE_RESERVED_15_BIT_KHR: 0x8000,
  VK_BUFFER_USAGE_RESERVED_16_BIT_KHR: 0x10000,
  VK_BUFFER_USAGE_RESERVED_13_BIT_KHR: 0x2000,
  VK_BUFFER_USAGE_RESERVED_14_BIT_KHR: 0x4000,
  VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT: 0x800,
  VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT: 0x1000,
  VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT: 0x200,
  VK_BUFFER_USAGE_RAY_TRACING_BIT_NV: 0x400,
  VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT: 0x20000
};</code></pre>
    </vk-stub>

    <vk-section-title>Properties</vk-section-title>

    <vk-properties>
      <vk-property-entry>
        <vk-property-prototype>VkBufferUsageFlagBits.<vk-prototype-name>VK_BUFFER_USAGE_TRANSFER_SRC_BIT</vk-prototype-name></vk-property-prototype>
        <vk-property-description> specifies that the buffer <i>can</i> be used as the source of a _transfer command_ (see the definition of <<synchronization-pipeline-stages-transfer, <b>VK_PIPELINE_STAGE_TRANSFER_BIT</b>>>).</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkBufferUsageFlagBits.<vk-prototype-name>VK_BUFFER_USAGE_TRANSFER_DST_BIT</vk-prototype-name></vk-property-prototype>
        <vk-property-description> specifies that the buffer <i>can</i> be used as the destination of a transfer command.</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkBufferUsageFlagBits.<vk-prototype-name>VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT</vk-prototype-name></vk-property-prototype>
        <vk-property-description> specifies that the buffer <i>can</i> be used to create a <b><a href="../handles/VkBufferView.html">VkBufferView</a></b> suitable for occupying a <b><a href="../handles/VkDescriptorSet.html">VkDescriptorSet</a></b> slot of type <b>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</b>.</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkBufferUsageFlagBits.<vk-prototype-name>VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT</vk-prototype-name></vk-property-prototype>
        <vk-property-description> specifies that the buffer <i>can</i> be used to create a <b><a href="../handles/VkBufferView.html">VkBufferView</a></b> suitable for occupying a <b><a href="../handles/VkDescriptorSet.html">VkDescriptorSet</a></b> slot of type <b>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</b>.</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkBufferUsageFlagBits.<vk-prototype-name>VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT</vk-prototype-name></vk-property-prototype>
        <vk-property-description> specifies that the buffer <i>can</i> be used in a <b><a href="../structs/VkDescriptorBufferInfo.html">VkDescriptorBufferInfo</a></b> suitable for occupying a <b><a href="../handles/VkDescriptorSet.html">VkDescriptorSet</a></b> slot either of type <b>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</b> or <b>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</b>.</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkBufferUsageFlagBits.<vk-prototype-name>VK_BUFFER_USAGE_STORAGE_BUFFER_BIT</vk-prototype-name></vk-property-prototype>
        <vk-property-description> specifies that the buffer <i>can</i> be used in a <b><a href="../structs/VkDescriptorBufferInfo.html">VkDescriptorBufferInfo</a></b> suitable for occupying a <b><a href="../handles/VkDescriptorSet.html">VkDescriptorSet</a></b> slot either of type <b>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</b> or <b>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</b>.</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkBufferUsageFlagBits.<vk-prototype-name>VK_BUFFER_USAGE_INDEX_BUFFER_BIT</vk-prototype-name></vk-property-prototype>
        <vk-property-description> specifies that the buffer is suitable for passing as the <b>buffer</b> parameter to <b><a href="../calls/vkCmdBindIndexBuffer.html">vkCmdBindIndexBuffer</a></b>.</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkBufferUsageFlagBits.<vk-prototype-name>VK_BUFFER_USAGE_VERTEX_BUFFER_BIT</vk-prototype-name></vk-property-prototype>
        <vk-property-description> specifies that the buffer is suitable for passing as an element of the <b>pBuffers</b> array to <b><a href="../calls/vkCmdBindVertexBuffers.html">vkCmdBindVertexBuffers</a></b>.</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkBufferUsageFlagBits.<vk-prototype-name>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</vk-prototype-name></vk-property-prototype>
        <vk-property-description> specifies that the buffer is suitable for passing as the <b>buffer</b> parameter to <b><a href="../calls/vkCmdDrawIndirect.html">vkCmdDrawIndirect</a></b>, <b><a href="../calls/vkCmdDrawIndexedIndirect.html">vkCmdDrawIndexedIndirect</a></b>, <b><a href="../calls/vkCmdDrawMeshTasksIndirectNV.html">vkCmdDrawMeshTasksIndirectNV</a></b>, <b><a href="../calls/vkCmdDrawMeshTasksIndirectCountNV.html">vkCmdDrawMeshTasksIndirectCountNV</a></b>,</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkBufferUsageFlagBits.<vk-prototype-name>VK_BUFFER_USAGE_RESERVED_15_BIT_KHR</vk-prototype-name></vk-property-prototype>
        <vk-property-description></vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkBufferUsageFlagBits.<vk-prototype-name>VK_BUFFER_USAGE_RESERVED_16_BIT_KHR</vk-prototype-name></vk-property-prototype>
        <vk-property-description></vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkBufferUsageFlagBits.<vk-prototype-name>VK_BUFFER_USAGE_RESERVED_13_BIT_KHR</vk-prototype-name></vk-property-prototype>
        <vk-property-description></vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkBufferUsageFlagBits.<vk-prototype-name>VK_BUFFER_USAGE_RESERVED_14_BIT_KHR</vk-prototype-name></vk-property-prototype>
        <vk-property-description></vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkBufferUsageFlagBits.<vk-prototype-name>VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT</vk-prototype-name></vk-property-prototype>
        <vk-property-description></vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkBufferUsageFlagBits.<vk-prototype-name>VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT</vk-prototype-name></vk-property-prototype>
        <vk-property-description></vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkBufferUsageFlagBits.<vk-prototype-name>VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT</vk-prototype-name></vk-property-prototype>
        <vk-property-description></vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkBufferUsageFlagBits.<vk-prototype-name>VK_BUFFER_USAGE_RAY_TRACING_BIT_NV</vk-prototype-name></vk-property-prototype>
        <vk-property-description></vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkBufferUsageFlagBits.<vk-prototype-name>VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT</vk-prototype-name></vk-property-prototype>
        <vk-property-description></vk-property-description>
      </vk-property-entry>
      
    </vk-properties>

  </vk-struct>

</vk-centered>

<script>
const IS_ROOT = false;
</script>

<script type="text/javascript" src="../../assets/js/prism.min.js"></script>
<script type="text/javascript" src="../../assets/js/index.js"></script>
